Adaptive reasoning